Providing high‐level self‐adaptive abstractions for stream parallelism on multicores
نویسندگان
چکیده
Abstract Stream processing applications are common computing workloads that demand parallelism to increase their performance. As in the past, parallel programming remains a difficult task for application programmers. The complexity increases when programmers must set nonintuitive parameters, is, degree of parallelism. main problem is state‐of‐the‐art libraries use static and not sufficiently abstracted developing stream applications. In this article, we propose self‐adaptive regulation provide higher‐level abstractions. Flexibility provided with two new strategies, one performance experts, other abstracts need goal. We evaluated our solution using compiler transformation rules generate code SPar domain‐specific language. experimental results real‐world highlighted higher abstraction levels without significant degradation comparison executions. strategy experts achieved slightly than works user‐defined goals.
منابع مشابه
Tasklettes - A Fine Grained Parallelism for Ada on Multicores
The widespread use of multi-CPU computers is challenging programming languages, which need to adapt to be able to express potential parallelism at the language level. In this paper we propose a new model for fine grained parallelism in Ada, putting forward a syntax based on aspects, and the corresponding semantics to integrate this model with the existing Ada tasking capabilities. We also propo...
متن کاملAbstractions for Adaptive Data Parallelism
This paper describes how a class of data parallel programs (SPMD) may be expressed using reusable adaptive abstractions. The abstractions support adaptive use of a network of workstations for parallel computing. Although data parallelism is the paradigm considered the programs are expressed using message passing. The main contribution of this paper is to demonstrate how adaptive parallelism may...
متن کاملHigh-Level Abstractions for Safe Parallelism
Recent research efforts have developed sophisticated type systems for eliminating unwanted interference (i.e., read-write conflicts) from parallel code. While these systems are powerful, they suffer from potential barriers to adoption in that (1) they rely upon complex and/or restrictive features that may be difficult for programmers to understand and use; and (2) they impose a nontrivial annot...
متن کاملScaling Ordered Stream Processing on Shared-Memory Multicores
Many modern applications require real-time processing of large volumes of high-speed data. Such data processing needs can be modeled as a streaming computation. A streaming computation is specified as a dataflow graph that exposes multiple opportunities for parallelizing its execution, in the form of data, pipeline and task parallelism. On the other hand, many important applications require tha...
متن کاملHarnessing the Multicores: Nested Data Parallelism in Haskell
If you want to program a parallel computer, a purely functional language like Haskell is a promising starting point. Since the language is pure, it is by-default safe for parallel evaluation, whereas imperative languages are by-default unsafe. But that doesn’t make it easy! Indeed it has proved quite difficult to get robust, scalable performance increases through parallel functional programming...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Software - Practice and Experience
سال: 2021
ISSN: ['0038-0644', '1097-024X']
DOI: https://doi.org/10.1002/spe.2948